Insektsrobot

Digitala Projekt, EITF40
Linnea Johansson (fek09ljo), Darek Hellgren (fristående)
Handledare: Bertil Lindvall
Rapport Koden

Introduktion
Vi ville med detta projekt ge oss på att skapa en autonom robot och arbetade sedan vidare från en insekt som grundidé. De beteenden vi ville att roboten skulle uppvisa var sådana som är grundläggande för alla djur, dvs. sökande efter föda och någon slags försvarsmekanism. Till detta var en insekt ett utmärkt val för oss eftersom de uppvisar dessa beteenden men inte har mer avancerade beteenden som hos t.ex. däggdjur. Vi valde att implementera beteendet utifrån tre olika förutsättningar. För det första lät vi roboten ha ett grundbeteende där roboten åker runt och stannar ibland för att "se sig omkring". För det andra lät vi roboten svara på hungerkänslor genom att låta den söka sig till ljusa partier och öka andelen gånger den tittar sig omkring när den nått en viss nivå av hunger. Hungerkänslorna implementerades genom användningen av en vridpotentiometer som vreds upp eller ner för att simulera ökad eller minskad hunger. För det tredje fick roboten svara på rädsla genom att söka sig till mörka partier och gömma sig där när den upplevde rädsla. Känslan programmerades in som en variabel som ökade eller minskade i samband med höga ljud.

11.jpg

Sensorer
Vi valde att använda oss av ett större antal sensorer för att så korrekt som för oss möjligt simulera det önskade beteendet. Nedan återfinns en kort sammanställning av de input och output som angavs i kravspecifikationen. Inkluderat finns även kortare förklaring till varje sensors bidrag till beteendet.

Output:
Motorer: likströmsmotorer för rörelse framåt, bakåt och i sidled av roboten.
Buzzer: liten högtalare som producerar ljudtoner utan varierad ljudstyrka. Komplexare ljud sätta därför samman av olika ljudsekvenser. Användes för att låta roboten indikera olika sinnestillstånd som belåtenhet eller rädsla.
LED: Varje LED innehåller 3 stycker dioder för olika färger, RBG. Användes för att låta roboten, genom varierande pulshastighet och färg, indikera tillstånd som hunger och rädsla.
Servomotor: servo för styrning av den optiska avståndssensor som moterats på den. Vridvinkel på 90 grader.

Input:
Ljuskänsliga transistorer: Användes för att läsa av området rakt framför roboten i en ca 90 graders vinkel för att avgöra om det finns mörka eller ljusa partier framför den. Finns även en inkluderad på ryggen för att den ska kunna avgöra om den är inne under ett mörkt utrymme.
Mikrofon: Trepolig mikrofon kapsel för att fånga upp ljud som eventuellt skulle kunna "skrämma" roboten. Detta skulle ske vid tillräckligt högt ljud.
Schmitt trigger: Användes mellan mikrofon och mikroprocessorn för att avgöra om ett ljud är över en viss nivå och då ska betraktas som skrämmande.
Optisk avståndssensor: Monterad på servo för att mäta asvtåndet till objekt med ett intervall på 20-150 cm.
Potentiometer: Varierbart motstånd som användes för att indikera ökad eller minskad hunger genom att vrid motståndet upp eller ner.
Mikroswitchar: Switchar som trycks in på roboten huvud om den håller på att klämma in sig själv under ett trångt utrymme. Dessa signalerar om roboten då behöver stanna och vända om. Tryckknapp (på ryggen): Liten knapp man kan trycka på för att lugna roboten om den är rädd.

Resultat
På grund av tekniska problem med både elförsörjningen och att flera servon gick sönder i projektets upplopp lyckades inte en helt korrekt simluering enligt de specifikationer som tidigare satts. Dock var koden korrekt skriven och ...[varför koden fungerar]. Vid eventuell vidareutveckling av detta projekt rekommenderas att en enklare design än denna görs på grund av tidsbegränsningen och att roboten krävde mycket ombyggnad under projektets gång.